﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Common.Model;
using SEG.Model;
using SEG.ServiceLogic;
using System.Windows;

namespace SEG.UI.Control.Presenters
{
    public class AsignarPermisosAGrupoPresenter
    {
        private Views.IAsignarPermisosAGrupoView View;
        private ViewEntity grupoViewEntity;
        private Grupo grupo;
        private AdministrarGruposServiceLogic serviceLogic = new AdministrarGruposServiceLogic();

        public AsignarPermisosAGrupoPresenter(Views.IAsignarPermisosAGrupoView asignarPermisosAGrupoView, ViewEntity grupo)
        {
            this.View = asignarPermisosAGrupoView;
            this.grupoViewEntity = grupo;

            this.LoadGrupo();
        }

        private void LoadGrupo()
        {
            grupo = serviceLogic.Read(grupoViewEntity.ID);
            this.View.Grupo = grupo;
        }

        internal bool Aceptar()
        {
            if (this.grupo.Permiso.Count == 0)
            {
                MessageBox.Show("Debe asignar al menos un permiso al grupo.", "CBE", MessageBoxButton.OK, MessageBoxImage.Error);
                return false;
            }
            else
            {
                serviceLogic.Save(grupo);
                return true;
            }
        }

        internal void Cancelar()
        {
            serviceLogic.RejectChanges();
        }
    }
}
